2025-03-12 07:32:44,820 - INFO - Num classes: 3
2025-03-12 07:38:35,797 - INFO - Class weights: tensor([0.5455, 2.7088, 1.2537], device='cuda:0')
2025-03-12 07:38:35,804 - INFO - Model architecture:
Unet(
  (conv1): Sequential(
    (0): Conv2d(1080, 8, kernel_size=(3, 3), stride=(1, 1), padding=(5, 5))
    (1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(8, 8, kernel_size=(3, 3), stride=(1, 1), padding=(5, 5))
    (4): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (conv2): Sequential(
    (0): Conv2d(8, 16, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2))
    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2))
    (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (conv3): Sequential(
    (0): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (upconv3): Sequential(
    (0): Conv2d(32, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(16, 16, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
  (upconv2): Sequential(
    (0): Conv2d(32, 8, kernel_size=(4, 4), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(8, 8, kernel_size=(4, 4), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(8, 8, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
  (upconv1): Sequential(
    (0): Conv2d(16, 3, kernel_size=(7, 7), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(3, 3, kernel_size=(7, 7), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(3, 3, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
)
2025-03-12 07:38:35,805 - INFO - Using cuda device
2025-03-12 07:47:52,554 - INFO - Epoch: 0/100. Training time: 372.097
2025-03-12 07:47:52,554 - INFO - Training Metrics...
2025-03-12 07:47:52,554 - INFO - {'loss': 1.1116335665344432, 'f1': 28.19348260224962, 'acc': 36.88529751072404, 'precision': 32.95334758977555, 'recall': 32.73624389693375, 'balanced acc': 32.73624389693375}
2025-03-12 07:47:52,554 - INFO - Validation Metrics... Inference time: 184.647
2025-03-12 07:47:52,554 - INFO - {'loss': 1.0744688174663446, 'f1': 16.31134041713355, 'acc': 30.80403134811617, 'precision': 35.90235915503714, 'recall': 33.59263956752784, 'balanced acc': 33.59263956752784}
2025-03-12 07:47:52,554 - INFO - ==================================================
2025-03-12 08:34:50,541 - INFO - Epoch: 5/100. Training time: 372.717
2025-03-12 08:34:50,541 - INFO - Training Metrics...
2025-03-12 08:34:50,541 - INFO - {'loss': 1.041482008186875, 'f1': 36.917384625232245, 'acc': 54.48493912891589, 'precision': 37.12685722110437, 'recall': 42.18240283267832, 'balanced acc': 42.18240283267832}
2025-03-12 08:34:50,542 - INFO - Validation Metrics... Inference time: 189.811
2025-03-12 08:34:50,542 - INFO - {'loss': 0.9268779724072187, 'f1': 37.03903848221988, 'acc': 54.80590373168499, 'precision': 38.97460666258578, 'recall': 41.80033920961815, 'balanced acc': 41.80033920961815}
2025-03-12 08:34:50,542 - INFO - ==================================================
2025-03-12 09:21:58,568 - INFO - Epoch: 10/100. Training time: 373.329
2025-03-12 09:21:58,569 - INFO - Training Metrics...
2025-03-12 09:21:58,569 - INFO - {'loss': 1.0230991661928261, 'f1': 39.67574325397348, 'acc': 56.49663502940986, 'precision': 43.41860137846821, 'recall': 47.5341812447714, 'balanced acc': 47.5341812447714}
2025-03-12 09:21:58,569 - INFO - Validation Metrics... Inference time: 186.931
2025-03-12 09:21:58,569 - INFO - {'loss': 0.9822639395029117, 'f1': 38.18086052759725, 'acc': 55.78985049548665, 'precision': 44.99260057456415, 'recall': 46.16249283851504, 'balanced acc': 46.16249283851504}
2025-03-12 09:21:58,569 - INFO - ==================================================
2025-03-12 10:10:06,726 - INFO - Epoch: 15/100. Training time: 376.597
2025-03-12 10:10:06,726 - INFO - Training Metrics...
2025-03-12 10:10:06,726 - INFO - {'loss': 0.9140199612660013, 'f1': 46.3781692893882, 'acc': 68.03012631206941, 'precision': 47.84471980043513, 'recall': 52.8407297664535, 'balanced acc': 52.8407297664535}
2025-03-12 10:10:06,726 - INFO - Validation Metrics... Inference time: 189.003
2025-03-12 10:10:06,726 - INFO - {'loss': 0.8244436490230072, 'f1': 45.48828802891879, 'acc': 66.83011696265044, 'precision': 48.2812073817679, 'recall': 51.826707029457594, 'balanced acc': 51.826707029457594}
2025-03-12 10:10:06,726 - INFO - ==================================================
2025-03-12 10:57:05,655 - INFO - Epoch: 20/100. Training time: 375.191
2025-03-12 10:57:05,655 - INFO - Training Metrics...
2025-03-12 10:57:05,655 - INFO - {'loss': 0.9083090610564895, 'f1': 44.967694975954466, 'acc': 65.17282096955024, 'precision': 47.36147729328904, 'recall': 51.79910482998933, 'balanced acc': 51.79910482998933}
2025-03-12 10:57:05,655 - INFO - Validation Metrics... Inference time: 188.708
2025-03-12 10:57:05,655 - INFO - {'loss': 0.68552583303207, 'f1': 52.30076602943468, 'acc': 78.57896614174517, 'precision': 53.66112152285761, 'recall': 53.97104828439227, 'balanced acc': 53.97104828439227}
2025-03-12 10:57:05,655 - INFO - ==================================================
2025-03-12 11:43:58,345 - INFO - Epoch: 25/100. Training time: 374.900
2025-03-12 11:43:58,345 - INFO - Training Metrics...
2025-03-12 11:43:58,346 - INFO - {'loss': 0.9353974674158035, 'f1': 45.37682361895424, 'acc': 65.64390161916678, 'precision': 48.6872460197316, 'recall': 52.229221338616014, 'balanced acc': 52.229221338616014}
2025-03-12 11:43:58,346 - INFO - Validation Metrics... Inference time: 187.111
2025-03-12 11:43:58,346 - INFO - {'loss': 0.7746123381150074, 'f1': 49.64820365495816, 'acc': 73.51338672488227, 'precision': 49.21110472527816, 'recall': 54.614753518388866, 'balanced acc': 54.614753518388866}
2025-03-12 11:43:58,346 - INFO - ==================================================
2025-03-12 12:31:04,646 - INFO - Epoch: 30/100. Training time: 379.552
2025-03-12 12:31:04,647 - INFO - Training Metrics...
2025-03-12 12:31:04,647 - INFO - {'loss': 0.8884135518863703, 'f1': 47.45518209220764, 'acc': 68.33935629387106, 'precision': 49.60919850058791, 'recall': 54.56763425529878, 'balanced acc': 54.56763425529878}
2025-03-12 12:31:04,647 - INFO - Validation Metrics... Inference time: 187.369
2025-03-12 12:31:04,647 - INFO - {'loss': 0.7260564947739626, 'f1': 49.24485690871299, 'acc': 74.24151601746468, 'precision': 49.5438909347715, 'recall': 51.92628458247827, 'balanced acc': 51.92628458247827}
2025-03-12 12:31:04,647 - INFO - ==================================================
2025-03-12 13:18:09,412 - INFO - Epoch: 35/100. Training time: 381.425
2025-03-12 13:18:09,413 - INFO - Training Metrics...
2025-03-12 13:18:09,413 - INFO - {'loss': 0.8754236614628202, 'f1': 47.500391403320975, 'acc': 69.19358507734304, 'precision': 49.277833090700184, 'recall': 54.36508020227531, 'balanced acc': 54.36508020227531}
2025-03-12 13:18:09,413 - INFO - Validation Metrics... Inference time: 190.434
2025-03-12 13:18:09,413 - INFO - {'loss': 0.6494908653772794, 'f1': 54.461315922875094, 'acc': 80.80173175039246, 'precision': 54.38696045383953, 'recall': 58.288661283624485, 'balanced acc': 58.288661283624485}
2025-03-12 13:18:09,413 - INFO - ==================================================
2025-03-12 17:46:15,628 - INFO - Num classes: 3
2025-03-12 17:52:02,464 - INFO - Class weights: tensor([0.5455, 2.7088, 1.2537], device='cuda:0')
2025-03-12 17:52:02,476 - INFO - Model architecture:
Unet(
  (conv1): Sequential(
    (0): Conv2d(1080, 8, kernel_size=(3, 3), stride=(1, 1), padding=(5, 5))
    (1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(8, 8, kernel_size=(3, 3), stride=(1, 1), padding=(5, 5))
    (4): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (conv2): Sequential(
    (0): Conv2d(8, 16, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2))
    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2))
    (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (conv3): Sequential(
    (0): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (upconv3): Sequential(
    (0): Conv2d(32, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(16, 16, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
  (upconv2): Sequential(
    (0): Conv2d(32, 8, kernel_size=(4, 4), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(8, 8, kernel_size=(4, 4), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(8, 8, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
  (upconv1): Sequential(
    (0): Conv2d(16, 3, kernel_size=(7, 7), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(3, 3, kernel_size=(7, 7), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(3, 3, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
)
2025-03-12 17:52:02,476 - INFO - Using cuda device
2025-03-12 17:52:02,511 - INFO - Training parameters restored at epoch 36
2025-03-13 14:48:10,337 - INFO - Num classes: 3
2025-03-13 14:53:11,029 - INFO - Class weights: tensor([0.5455, 2.7088, 1.2537], device='cuda:0')
2025-03-13 14:53:11,038 - INFO - Model architecture:
Unet(
  (conv1): Sequential(
    (0): Conv2d(1080, 8, kernel_size=(3, 3), stride=(1, 1), padding=(5, 5))
    (1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(8, 8, kernel_size=(3, 3), stride=(1, 1), padding=(5, 5))
    (4): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (conv2): Sequential(
    (0): Conv2d(8, 16, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2))
    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2))
    (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (conv3): Sequential(
    (0): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (upconv3): Sequential(
    (0): Conv2d(32, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(16, 16, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
  (upconv2): Sequential(
    (0): Conv2d(32, 8, kernel_size=(4, 4), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(8, 8, kernel_size=(4, 4), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(8, 8, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
  (upconv1): Sequential(
    (0): Conv2d(16, 3, kernel_size=(7, 7), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(3, 3, kernel_size=(7, 7), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(3, 3, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
)
2025-03-13 14:53:11,038 - INFO - Using cuda device
2025-03-13 14:53:11,088 - INFO - Training parameters restored at epoch 37
2025-03-13 15:25:18,017 - INFO - Epoch: 40/100. Training time: 325.747
2025-03-13 15:25:18,019 - INFO - Training Metrics...
2025-03-13 15:25:18,020 - INFO - {'loss': 0.8750242306168672, 'f1': 48.810303611208475, 'acc': 70.78735081811386, 'precision': 50.83960053680706, 'recall': 55.04101053970902, 'balanced acc': 55.04101053970902}
2025-03-13 15:25:18,020 - INFO - Validation Metrics... Inference time: 166.914
2025-03-13 15:25:18,020 - INFO - {'loss': 0.6786017968104436, 'f1': 53.29133577479613, 'acc': 78.80304916437728, 'precision': 52.39967270482335, 'recall': 57.0735439277485, 'balanced acc': 57.0735439277485}
2025-03-13 15:25:18,020 - INFO - ==================================================
2025-03-13 16:07:26,279 - INFO - Epoch: 45/100. Training time: 337.406
2025-03-13 16:07:26,282 - INFO - Training Metrics...
2025-03-13 16:07:26,282 - INFO - {'loss': 0.8860404973576783, 'f1': 49.824563748887606, 'acc': 71.45064659024439, 'precision': 54.64901646393332, 'recall': 55.39145792040194, 'balanced acc': 55.39145792040194}
2025-03-13 16:07:26,282 - INFO - Validation Metrics... Inference time: 172.496
2025-03-13 16:07:26,282 - INFO - {'loss': 0.6867633523085178, 'f1': 52.31916602117146, 'acc': 77.33932966215332, 'precision': 54.28836389008895, 'recall': 55.94735057523865, 'balanced acc': 55.94735057523865}
2025-03-13 16:07:26,282 - INFO - ==================================================
2025-03-13 16:50:17,874 - INFO - Epoch: 50/100. Training time: 342.224
2025-03-13 16:50:17,877 - INFO - Training Metrics...
2025-03-13 16:50:17,877 - INFO - {'loss': 0.8573127563591976, 'f1': 50.01749383806191, 'acc': 71.71856974278565, 'precision': 51.08530263524096, 'recall': 55.37363001574801, 'balanced acc': 55.37363001574801}
2025-03-13 16:50:17,877 - INFO - Validation Metrics... Inference time: 172.173
2025-03-13 16:50:17,878 - INFO - {'loss': 0.6938332915306091, 'f1': 52.78769039682747, 'acc': 77.43052148744111, 'precision': 53.720846451135515, 'recall': 56.01970446628195, 'balanced acc': 56.01970446628195}
2025-03-13 16:50:17,878 - INFO - ==================================================
2025-03-13 17:32:52,815 - INFO - Epoch: 55/100. Training time: 339.665
2025-03-13 17:32:52,817 - INFO - Training Metrics...
2025-03-13 17:32:52,818 - INFO - {'loss': 0.8292828244008835, 'f1': 53.029728511835536, 'acc': 73.02054729136879, 'precision': 54.8118411330475, 'recall': 57.507594166561674, 'balanced acc': 57.507594166561674}
2025-03-13 17:32:52,818 - INFO - Validation Metrics... Inference time: 171.376
2025-03-13 17:32:52,818 - INFO - {'loss': 0.6122171970514151, 'f1': 51.45636137361021, 'acc': 78.60599919054161, 'precision': 56.260387914922994, 'recall': 51.67755227932591, 'balanced acc': 51.67755227932591}
2025-03-13 17:32:52,818 - INFO - ==================================================
2025-03-13 18:15:18,756 - INFO - Epoch: 60/100. Training time: 336.805
2025-03-13 18:15:18,758 - INFO - Training Metrics...
2025-03-13 18:15:18,759 - INFO - {'loss': 0.8390660973111536, 'f1': 57.6341527025584, 'acc': 71.6850317455804, 'precision': 59.40258127405983, 'recall': 60.350043632999274, 'balanced acc': 60.350043632999274}
2025-03-13 18:15:18,759 - INFO - Validation Metrics... Inference time: 170.513
2025-03-13 18:15:18,759 - INFO - {'loss': 0.5895525369888697, 'f1': 59.46469696107977, 'acc': 80.645716820382, 'precision': 61.61130030065406, 'recall': 59.16624559319826, 'balanced acc': 59.16624559319826}
2025-03-13 18:15:18,759 - INFO - ==================================================
2025-03-13 18:57:27,661 - INFO - Epoch: 65/100. Training time: 336.680
2025-03-13 18:57:27,663 - INFO - Training Metrics...
2025-03-13 18:57:27,664 - INFO - {'loss': 0.8721644639209577, 'f1': 54.68830264905158, 'acc': 68.99078301702846, 'precision': 56.63843887459655, 'recall': 57.379203430400715, 'balanced acc': 57.379203430400715}
2025-03-13 18:57:27,664 - INFO - Validation Metrics... Inference time: 169.614
2025-03-13 18:57:27,664 - INFO - {'loss': 0.6147745175239367, 'f1': 58.0316463629583, 'acc': 80.63002845368918, 'precision': 59.39029108823698, 'recall': 58.70998301710977, 'balanced acc': 58.70998301710977}
2025-03-13 18:57:27,664 - INFO - ==================================================
2025-03-13 19:39:28,852 - INFO - Epoch: 70/100. Training time: 332.015
2025-03-13 19:39:28,854 - INFO - Training Metrics...
2025-03-13 19:39:28,855 - INFO - {'loss': 0.844754735755313, 'f1': 58.548453589481234, 'acc': 71.17905482256597, 'precision': 59.74207991106068, 'recall': 62.244562235873225, 'balanced acc': 62.244562235873225}
2025-03-13 19:39:28,855 - INFO - Validation Metrics... Inference time: 171.216
2025-03-13 19:39:28,855 - INFO - {'loss': 0.6412755602445358, 'f1': 60.30533739199557, 'acc': 77.89424814396911, 'precision': 60.59977302505498, 'recall': 61.63703956766793, 'balanced acc': 61.63703956766793}
2025-03-13 19:39:28,855 - INFO - ==================================================
2025-03-13 20:21:26,744 - INFO - Epoch: 75/100. Training time: 335.306
2025-03-13 20:21:26,746 - INFO - Training Metrics...
2025-03-13 20:21:26,746 - INFO - {'loss': 0.7985162131345955, 'f1': 59.790554605513705, 'acc': 71.6843716487391, 'precision': 60.08189268226156, 'recall': 62.725162314869564, 'balanced acc': 62.725162314869564}
2025-03-13 20:21:26,746 - INFO - Validation Metrics... Inference time: 169.035
2025-03-13 20:21:26,746 - INFO - {'loss': 0.6538865871918507, 'f1': 59.203433095637926, 'acc': 73.87199621435113, 'precision': 60.317665346795756, 'recall': 61.99312857042507, 'balanced acc': 61.99312857042507}
2025-03-13 20:21:26,747 - INFO - ==================================================
2025-03-13 21:03:28,386 - INFO - Epoch: 80/100. Training time: 335.611
2025-03-13 21:03:28,388 - INFO - Training Metrics...
2025-03-13 21:03:28,389 - INFO - {'loss': 0.8347606776626246, 'f1': 59.1237478411616, 'acc': 70.18147077700505, 'precision': 60.44697266271315, 'recall': 62.341022039756076, 'balanced acc': 62.341022039756076}
2025-03-13 21:03:28,389 - INFO - Validation Metrics... Inference time: 168.906
2025-03-13 21:03:28,389 - INFO - {'loss': 0.6173682549060919, 'f1': 62.252091567878566, 'acc': 77.32016634778913, 'precision': 62.25734097063504, 'recall': 65.28093210825261, 'balanced acc': 65.28093210825261}
2025-03-13 21:03:28,389 - INFO - ==================================================
2025-03-13 21:45:16,690 - INFO - Epoch: 85/100. Training time: 333.344
2025-03-13 21:45:16,692 - INFO - Training Metrics...
2025-03-13 21:45:16,693 - INFO - {'loss': 0.7838925981217888, 'f1': 64.58693215739649, 'acc': 73.57907807828546, 'precision': 64.40438256945882, 'recall': 69.22994259569172, 'balanced acc': 69.22994259569172}
2025-03-13 21:45:16,693 - INFO - Validation Metrics... Inference time: 168.417
2025-03-13 21:45:16,694 - INFO - {'loss': 0.6390438370215588, 'f1': 64.8924991190732, 'acc': 77.78499170100733, 'precision': 65.2986328217254, 'recall': 69.85451379967077, 'balanced acc': 69.85451379967077}
2025-03-13 21:45:16,694 - INFO - ==================================================
2025-03-13 22:27:05,747 - INFO - Epoch: 90/100. Training time: 333.021
2025-03-13 22:27:05,749 - INFO - Training Metrics...
2025-03-13 22:27:05,750 - INFO - {'loss': 0.7730933036773827, 'f1': 65.00445023004825, 'acc': 73.56842766963472, 'precision': 64.98654238598009, 'recall': 69.8359288786247, 'balanced acc': 69.8359288786247}
2025-03-13 22:27:05,750 - INFO - Validation Metrics... Inference time: 169.253
2025-03-13 22:27:05,751 - INFO - {'loss': 0.5964202559911288, 'f1': 67.43156335247711, 'acc': 79.5663623021324, 'precision': 67.77820727846935, 'recall': 72.28460792246952, 'balanced acc': 72.28460792246952}
2025-03-13 22:27:05,751 - INFO - ==================================================
2025-03-13 23:09:03,657 - INFO - Epoch: 95/100. Training time: 333.955
2025-03-13 23:09:03,660 - INFO - Training Metrics...
2025-03-13 23:09:03,661 - INFO - {'loss': 0.7923068005567903, 'f1': 61.91513144356654, 'acc': 72.53620123407644, 'precision': 62.01355853722033, 'recall': 66.05037860307304, 'balanced acc': 66.05037860307304}
2025-03-13 23:09:03,661 - INFO - Validation Metrics... Inference time: 171.271
2025-03-13 23:09:03,661 - INFO - {'loss': 0.5992688689476404, 'f1': 68.03016828022234, 'acc': 80.04470417974883, 'precision': 67.84366562204971, 'recall': 73.02298797810222, 'balanced acc': 73.02298797810222}
2025-03-13 23:09:03,661 - INFO - ==================================================
2025-03-13 23:45:43,238 - INFO - Final test metrics:
{'f1': 68.76541002514325, 'acc': 80.79013155743067, 'precision': 67.50617268091887, 'recall': 74.37987198373094, 'balanced acc': 74.37987198373094}
2025-03-20 07:05:11,179 - INFO - Num classes: 3
2025-03-20 07:05:11,293 - INFO - Model architecture:
Unet(
  (conv1): Sequential(
    (0): Conv2d(1080, 8, kernel_size=(3, 3), stride=(1, 1), padding=(5, 5))
    (1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(8, 8, kernel_size=(3, 3), stride=(1, 1), padding=(5, 5))
    (4): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (conv2): Sequential(
    (0): Conv2d(8, 16, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2))
    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2))
    (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (conv3): Sequential(
    (0): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (upconv3): Sequential(
    (0): Conv2d(32, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(16, 16, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
  (upconv2): Sequential(
    (0): Conv2d(32, 8, kernel_size=(4, 4), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(8, 8, kernel_size=(4, 4), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(8, 8, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
  (upconv1): Sequential(
    (0): Conv2d(16, 3, kernel_size=(7, 7), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(3, 3, kernel_size=(7, 7), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(3, 3, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
)
2025-03-20 07:05:11,293 - INFO - Using cuda device
2025-03-20 07:05:11,342 - INFO - Training parameters restored at epoch 98
2025-03-20 07:05:11,368 - INFO - Initializing final Evaluations:

2025-03-20 07:08:06,691 - INFO - Final validation metrics:
{'f1': 68.76541002514325, 'acc': 80.79013155743067, 'precision': 67.50617268091887, 'recall': 74.37987198373094, 'balanced acc': 74.37987198373094}
2025-03-20 07:10:08,487 - INFO - Final test pixel-wise classification metrics:
{'f1': 67.87580422964994, 'acc': 72.46854541517152, 'precision': 67.90252328742122, 'recall': 69.70452098344566, 'balanced acc': 69.70452098344566}
2025-04-05 02:37:40,769 - INFO - Num classes: 3
2025-04-05 02:37:40,775 - INFO - Class weights: None
2025-04-05 02:37:40,892 - INFO - Model architecture:
Unet(
  (conv1): Sequential(
    (0): Conv2d(1080, 8, kernel_size=(3, 3), stride=(1, 1), padding=(5, 5))
    (1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(8, 8, kernel_size=(3, 3), stride=(1, 1), padding=(5, 5))
    (4): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (conv2): Sequential(
    (0): Conv2d(8, 16, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2))
    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2))
    (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (conv3): Sequential(
    (0): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  )
  (upconv3): Sequential(
    (0): Conv2d(32, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(16, 16, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
  (upconv2): Sequential(
    (0): Conv2d(32, 8, kernel_size=(4, 4), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(8, 8, kernel_size=(4, 4), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(8, 8, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
  (upconv1): Sequential(
    (0): Conv2d(16, 3, kernel_size=(7, 7), stride=(1, 1), padding=(1, 1))
    (1): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): Conv2d(3, 3, kernel_size=(7, 7), stride=(1, 1), padding=(1, 1))
    (4): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (5): ReLU()
    (6): ConvTranspose2d(3, 3, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), output_padding=(1, 1))
  )
)
2025-04-05 02:37:40,892 - INFO - Using cuda device
2025-04-05 02:37:40,916 - INFO - Initializing final Evaluations:

